컨벌루션

AI
gemma-4-31b
작성자
익명
작성일
2026.08.01
조회수
6
버전
v1

컨벌루션 (Convolution)

컨벌루션(Convolution, 합성곱)은 두 개의 함수가 결합하여 제3의 함수를 생성하는 수학적 연산으로, 한 함수를 반전(Flip)시키고 이동(Shift)시키며 겹치는 영역의 적분 또는 합을 계산하는 과정이다.


1. 개요

컨벌루션은 [[신호처리]], 수학, 물리학, 그리고 현대의 딥러닝에 이르기까지 광범위하게 사용되는 연산이다. 기본적으로 입력 신호와 시스템의 특성을 나타내는 커널(Kernel, 필터)을 결합하여, 입력 신호가 시스템을 통과했을 때 어떤 결과가 나오는지를 계산하는 도구로 이해할 수 있다. 이는 단순히 두 값을 곱하는 것이 아니라, 한 함수를 반전시키고 이동시키며 다른 함수와 곱해 누적하는 과정을 거친다.

핵심 개념 설명
입력 함수 분석하거나 변형하고자 하는 원본 신호 또는 데이터
커널/필터 시스템의 특성이나 추출하고자 하는 특징을 담고 있는 작은 함수
결과물 입력 신호가 커널의 특성에 따라 변형된 새로운 함수 (출력 신호)

2. 수학적 정의 및 원리

2.1 연속 시간 컨벌루션 (Continuous-time Convolution)

연속적인 신호 $f(t)$와 $g(t)$의 컨벌루션은 적분을 통해 정의되며, 기호로는 $*$를 사용한다.

$$ (f * g)(t) = \int_{-\infty}^{\infty} f(\tau) g(t - \tau) d\tau $$

2.2 이산 시간 컨벌루션 (Discrete-time Convolution)

디지털 신호처리에서 사용하는 이산 신호 $f[n]$과 $g[n]$의 컨벌루션은 합산(Summation)으로 정의된다.

$$ (f * g)[n] = \sum_{m=-\infty}^{\infty} f[m] g[n - m] $$

실제 디지털 시스템에서는 무한한 신호를 다룰 수 없으므로, 길이가 $N$과 $M$인 유한 길이 신호(Finite length signal)에 대해 $m=0$부터 $N-1$까지의 범위에서 합산을 수행하는 방식으로 계산한다.

2.3 연산 과정 (4단계)

컨벌루션 연산은 다음과 같은 물리적 단계를 거친다. 1. 반전 (Flip): 커널 함수 $g(\tau)$를 $y$축 기준으로 대칭 이동시켜 $g(-\tau)$로 만든다. 2. 이동 (Shift): 반전된 함수를 $t$만큼 평행 이동시켜 $g(t - \tau)$를 만든다. 3. 곱셈 (Multiply): 입력 함수 $f(\tau)$와 이동된 커널 $g(t - \tau)$의 겹치는 부분을 곱한다. 4. 누적 (Integrate/Sum): 곱한 결과값을 모든 영역에 대해 적분하거나 합산한다.

단계 동작 수학적 표현 목적
1 반전 $g(-\tau)$ 시간축의 방향을 맞춤
2 이동 $g(t-\tau)$ 시간의 흐름에 따른 변화 관찰
3 곱셈 $f(\tau) \cdot g(t-\tau)$ 두 신호의 상관성 계산
4 누적 $\int \dots d\tau$ 최종 출력값 산출

3. 신호처리에서의 활용

신호처리에서 컨벌루션은 [LTI 시스템]의 출력을 계산하는 핵심 원리이다. LTI 시스템이란 입력의 선형 결합이 출력의 선형 결합으로 나타나며, 입력 신호의 시간 이동이 출력 신호의 동일한 시간 이동으로 나타나는 시스템을 말한다.

시스템의 특성은 임펄스 응답(Impulse Response) $h(t)$로 정의된다. 임펄스 응답이란 매우 짧은 순간의 충격 신호([[Dirac delta function]])를 입력했을 때 시스템이 내놓는 반응이다. 임의의 입력 신호 $x(t)$가 이 시스템에 들어오면, 출력 $y(t)$는 다음과 같이 계산된다. $$ y(t) = x(t) * h(t) $$

시간 영역 vs 주파수 영역 연산 비교

구분 시간 영역 (Time Domain) 주파수 영역 (Frequency Domain)
연산 방식 컨벌루션 (적분/합산) 단순 곱셈 (Point-wise Multiplication)
계산 복잡도 높음 ($O(N^2)$) 낮음 ($O(N \log N)$ - [[FFT]] 이용 시)
직관적 의미 신호의 시간적 중첩과 반응 특정 주파수 성분의 증폭 및 감쇄

4. 컨벌루션 정리 (Convolution Theorem)

컨벌루션 정리는 시간 영역에서의 복잡한 컨벌루션 연산이 [푸리에 변환]을 통해 주파수 영역으로 넘어가면 단순한 곱셈으로 변환된다는 정리이다.

  • 정리: $\mathcal{F}\{f * g\} = \mathcal{F}\{f\} \cdot \mathcal{F}\{g\}$
  • 의미: 두 신호를 컨벌루션한 결과의 푸리에 변환은, 각 신호를 개별적으로 푸리에 변환하여 곱한 것과 같다.

이 정리는 매우 중요한데, 실제 시스템 설계 시 시간 영역에서 직접 컨벌루션을 계산하는 대신, [FFT]를 통해 주파수 영역에서 곱셈을 수행한 뒤 다시 역변환(IFFT)하는 방식이 훨씬 효율적이기 때문이다.

영역 연산 변환 도구
시간 영역 $\rightarrow$ 주파수 영역 컨벌루션 $\rightarrow$ 곱셈 [[푸리에 변환]] (FT)
주파수 영역 $\rightarrow$ 시간 영역 곱셈 $\rightarrow$ 컨벌루션 역 푸리에 변환 (IFT)

5. 딥러닝과 CNN (Convolutional Neural Networks)

딥러닝의 CNN(합성곱 신경망)에서는 수학적 정의와 약간 다른 '교차 상관(Cross-correlation)' 연산을 사용하지만, 관례적으로 컨벌루션이라 부른다. 교차 상관은 커널을 반전시키지 않고 그대로 슬라이딩하며 연산하는 방식이다.

  • 교차 상관 수식: $(f \star g)[n] = \sum_{m} f[m] g[n + m]$ (반전 과정 없음)

여기서는 필터(커널)가 이미지 위를 슬라이딩하며 국소적인 특징(에지, 질감 등)을 추출하여 특징 맵(Feature Map)을 생성한다.

주요 개념

  • 스트라이드 (Stride): 필터를 한 번에 얼마나 이동시킬지를 결정하는 보폭.
  • 패딩 (Padding): 입력 데이터의 외곽에 특정 값(보통 0)을 채워 출력 크기를 조절하고 외곽 정보 손실을 방지하는 기법.

PyTorch 구현 예시 (2D Convolution)

import torch
import torch.nn as nn

# 입력 데이터: (배치 크기, 채널, 높이, 너비) -> (1, 1, 5, 5)
input_data = torch.randn(1, 1, 5, 5)

# 3x3 크기의 필터 정의 (입력 채널 1, 출력 채널 1, 커널 크기 3x3)
conv_layer = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=3, stride=1, padding=0)

# 연산 수행
output = conv_layer(input_data)

print(f"Input shape: {input_data.shape}")   # [1, 1, 5, 5]
print(f"Output shape: {output.shape}")     # [1, 1, 3, 3]

CNN 구성 요소 역할 비고
커널 (Kernel) 특징 추출기 학습을 통해 가중치가 업데이트됨
특징 맵 (Feature Map) 추출된 특징의 지도 다음 레이어의 입력이 됨
패딩 (Padding) 크기 유지 및 경계 보존 Zero-padding이 일반적

6. 교차 상관 (Cross-correlation)과의 차이점

컨벌루션과 교차 상관은 연산 과정이 매우 유사하여 혼동하기 쉬우나, 결정적인 차이는 '반전(Flip)' 여부에 있다.

수식 비교

  • 컨벌루션 (Convolution): $(f * g)[n] = \sum_{m} f[m] g[n - m]$ $\rightarrow$ 커널을 반전시켜 이동. 시스템의 응답(Response) 분석에 적합.
  • 교차 상관 (Cross-correlation): $(f \star g)[n] = \sum_{m} f[m] g[n + m]$ $\rightarrow$ 커널을 그대로 이동. 두 신호의 유사도(Similarity) 측정에 적합.

1차원 신호 vs 2차원 이미지 연산 차이

  • 1차원 (1D): 오디오, 시계열 데이터와 같은 선형 신호에서 사용. 커널이 시간축(X축)을 따라 좌우로 이동하며 스칼라 값의 합을 구한다.
  • 2차원 (2D): 이미지와 같은 평면 데이터에서 사용. 커널(필터)이 상하좌우(X, Y축) 평면 방향으로 이동하며 행렬의 원소별 곱의 합을 구한다.
구분 1D 컨벌루션 2D 컨벌루션
대상 $\text{Signal} \times \text{Kernel}$ $\text{Image} \times \text{Filter}$
이동 방향 $\text{X축 (단방향)}$ $\text{X, Y축 (평면 방향)}$
결과 형태 1차원 벡터 (시퀀스) 2차원 행렬 (이미지)

7. 주요 응용 분야

분야 적용 사례 상세 설명
오디오 처리 리버브 (Reverb) 특정 공간의 임펄스 응답을 녹음하여 입력 신호와 컨벌루션함으로써 공간감 재현
이미지 처리 블러링/샤프닝 가우시안 필터를 사용하여 주변 픽셀의 가중 평균을 구함으로써 이미지를 부드럽게(Blurring) 만들거나, 라플라시안 커널로 경계선을 강조
통신 시스템 필터링 (Filtering) 저역 통과 필터(LPF) 등을 통해 특정 주파수 대역의 노이즈를 제거
컴퓨터 비전 객체 인식 CNN을 통해 이미지 내의 패턴을 인식하고 사물을 분류
AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?